{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# allergy\n",
    "\n",
    "* allergyEnteredOffset\n",
    "* allergyNoteType\n",
    "* specialtyType\n",
    "* userType\n",
    "* rxIncluded\n",
    "* writtenIneICU\n",
    "* drugName\n",
    "* allergyType\n",
    "* allergyName\n",
    "* drugHiclSeqno\n",
    "\n",
    "We recommend configuring the `config.ini` file to allow for connection to the database without specifying your password each time."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/alistairewj/.local/lib/python3.5/site-packages/psycopg2/__init__.py:144: UserWarning: The psycopg2 wheel package will be renamed from release 2.8; in order to keep installing from binary please use \"pip install psycopg2-binary\" instead. For details see: <http://initd.org/psycopg/docs/install.html#binary-install-from-pypi>.\n",
      "  \"\"\")\n"
     ]
    }
   ],
   "source": [
    "# Import libraries\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import psycopg2\n",
    "import getpass\n",
    "import pdvega\n",
    "\n",
    "# for configuring connection \n",
    "from configobj import ConfigObj\n",
    "import os\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Database: eicu\n",
      "Username: alistairewj\n"
     ]
    }
   ],
   "source": [
    "# Create a database connection using settings from config file\n",
    "config='../db/config.ini'\n",
    "\n",
    "# connection info\n",
    "conn_info = dict()\n",
    "if os.path.isfile(config):\n",
    "    config = ConfigObj(config)\n",
    "    conn_info[\"sqluser\"] = config['username']\n",
    "    conn_info[\"sqlpass\"] = config['password']\n",
    "    conn_info[\"sqlhost\"] = config['host']\n",
    "    conn_info[\"sqlport\"] = config['port']\n",
    "    conn_info[\"dbname\"] = config['dbname']\n",
    "    conn_info[\"schema_name\"] = config['schema_name']\n",
    "else:\n",
    "    conn_info[\"sqluser\"] = 'postgres'\n",
    "    conn_info[\"sqlpass\"] = ''\n",
    "    conn_info[\"sqlhost\"] = 'localhost'\n",
    "    conn_info[\"sqlport\"] = 5432\n",
    "    conn_info[\"dbname\"] = 'eicu'\n",
    "    conn_info[\"schema_name\"] = 'public,eicu_crd'\n",
    "    \n",
    "# Connect to the eICU database\n",
    "print('Database: {}'.format(conn_info['dbname']))\n",
    "print('Username: {}'.format(conn_info[\"sqluser\"]))\n",
    "if conn_info[\"sqlpass\"] == '':\n",
    "    # try connecting without password, i.e. peer or OS authentication\n",
    "    try:\n",
    "        if (conn_info[\"sqlhost\"] == 'localhost') & (conn_info[\"sqlport\"]=='5432'):\n",
    "            con = psycopg2.connect(dbname=conn_info[\"dbname\"],\n",
    "                                   user=conn_info[\"sqluser\"])            \n",
    "        else:\n",
    "            con = psycopg2.connect(dbname=conn_info[\"dbname\"],\n",
    "                                   host=conn_info[\"sqlhost\"],\n",
    "                                   port=conn_info[\"sqlport\"],\n",
    "                                   user=conn_info[\"sqluser\"])\n",
    "    except:\n",
    "        conn_info[\"sqlpass\"] = getpass.getpass('Password: ')\n",
    "\n",
    "        con = psycopg2.connect(dbname=conn_info[\"dbname\"],\n",
    "                               host=conn_info[\"sqlhost\"],\n",
    "                               port=conn_info[\"sqlport\"],\n",
    "                               user=conn_info[\"sqluser\"],\n",
    "                               password=conn_info[\"sqlpass\"])\n",
    "query_schema = 'set search_path to ' + conn_info['schema_name'] + ';'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Examine a single patient"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "patientunitstayid = 287822"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>allergyid</th>\n",
       "      <th>patientunitstayid</th>\n",
       "      <th>allergyyear</th>\n",
       "      <th>allergytime24</th>\n",
       "      <th>allergytime</th>\n",
       "      <th>allergyoffset</th>\n",
       "      <th>allergyenteredyear</th>\n",
       "      <th>allergyenteredtime24</th>\n",
       "      <th>allergyenteredtime</th>\n",
       "      <th>allergyenteredoffset</th>\n",
       "      <th>allergynotetype</th>\n",
       "      <th>specialtytype</th>\n",
       "      <th>usertype</th>\n",
       "      <th>rxincluded</th>\n",
       "      <th>writtenineicu</th>\n",
       "      <th>drugname</th>\n",
       "      <th>allergytype</th>\n",
       "      <th>allergyname</th>\n",
       "      <th>drughiclseqno</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>223474</td>\n",
       "      <td>287822</td>\n",
       "      <td>2014</td>\n",
       "      <td>22:15:00</td>\n",
       "      <td>midnight</td>\n",
       "      <td>120</td>\n",
       "      <td>2014</td>\n",
       "      <td>22:28:09</td>\n",
       "      <td>midnight</td>\n",
       "      <td>133</td>\n",
       "      <td>Admission</td>\n",
       "      <td>eCM Primary</td>\n",
       "      <td>THC Nurse</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td></td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Nickel</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>223475</td>\n",
       "      <td>287822</td>\n",
       "      <td>2014</td>\n",
       "      <td>22:15:00</td>\n",
       "      <td>midnight</td>\n",
       "      <td>120</td>\n",
       "      <td>2014</td>\n",
       "      <td>22:28:09</td>\n",
       "      <td>midnight</td>\n",
       "      <td>133</td>\n",
       "      <td>Admission</td>\n",
       "      <td>eCM Primary</td>\n",
       "      <td>THC Nurse</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td></td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Tetracycline</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>223476</td>\n",
       "      <td>287822</td>\n",
       "      <td>2014</td>\n",
       "      <td>22:15:00</td>\n",
       "      <td>midnight</td>\n",
       "      <td>120</td>\n",
       "      <td>2014</td>\n",
       "      <td>22:28:09</td>\n",
       "      <td>midnight</td>\n",
       "      <td>133</td>\n",
       "      <td>Admission</td>\n",
       "      <td>eCM Primary</td>\n",
       "      <td>THC Nurse</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td></td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Ampicillin</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>223477</td>\n",
       "      <td>287822</td>\n",
       "      <td>2014</td>\n",
       "      <td>22:15:00</td>\n",
       "      <td>midnight</td>\n",
       "      <td>120</td>\n",
       "      <td>2014</td>\n",
       "      <td>22:28:09</td>\n",
       "      <td>midnight</td>\n",
       "      <td>133</td>\n",
       "      <td>Admission</td>\n",
       "      <td>eCM Primary</td>\n",
       "      <td>THC Nurse</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td></td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Clindamycin</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>256993</td>\n",
       "      <td>287822</td>\n",
       "      <td>2014</td>\n",
       "      <td>18:18:00</td>\n",
       "      <td>night</td>\n",
       "      <td>2763</td>\n",
       "      <td>2014</td>\n",
       "      <td>18:18:46</td>\n",
       "      <td>night</td>\n",
       "      <td>2763</td>\n",
       "      <td>Comprehensive Progress</td>\n",
       "      <td>eCM Primary</td>\n",
       "      <td>THC Nurse</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td></td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Nickel</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   allergyid  patientunitstayid  allergyyear allergytime24 allergytime  \\\n",
       "0     223474             287822         2014      22:15:00    midnight   \n",
       "1     223475             287822         2014      22:15:00    midnight   \n",
       "2     223476             287822         2014      22:15:00    midnight   \n",
       "3     223477             287822         2014      22:15:00    midnight   \n",
       "4     256993             287822         2014      18:18:00       night   \n",
       "\n",
       "   allergyoffset  allergyenteredyear allergyenteredtime24 allergyenteredtime  \\\n",
       "0            120                2014             22:28:09           midnight   \n",
       "1            120                2014             22:28:09           midnight   \n",
       "2            120                2014             22:28:09           midnight   \n",
       "3            120                2014             22:28:09           midnight   \n",
       "4           2763                2014             18:18:46              night   \n",
       "\n",
       "   allergyenteredoffset         allergynotetype specialtytype   usertype  \\\n",
       "0                   133               Admission   eCM Primary  THC Nurse   \n",
       "1                   133               Admission   eCM Primary  THC Nurse   \n",
       "2                   133               Admission   eCM Primary  THC Nurse   \n",
       "3                   133               Admission   eCM Primary  THC Nurse   \n",
       "4                  2763  Comprehensive Progress   eCM Primary  THC Nurse   \n",
       "\n",
       "  rxincluded writtenineicu drugname allergytype   allergyname drughiclseqno  \n",
       "0       True          True             Non Drug        Nickel          None  \n",
       "1       True          True             Non Drug  Tetracycline          None  \n",
       "2       True          True             Non Drug    Ampicillin          None  \n",
       "3       True          True             Non Drug   Clindamycin          None  \n",
       "4      False          True             Non Drug        Nickel          None  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query = query_schema + \"\"\"\n",
    "select *\n",
    "from allergy\n",
    "where patientunitstayid = {}\n",
    "\"\"\".format(patientunitstayid)\n",
    "\n",
    "df = pd.read_sql_query(query, con)\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>allergyid</th>\n",
       "      <th>patientunitstayid</th>\n",
       "      <th>allergyoffset</th>\n",
       "      <th>allergyenteredoffset</th>\n",
       "      <th>allergynotetype</th>\n",
       "      <th>usertype</th>\n",
       "      <th>writtenineicu</th>\n",
       "      <th>drugname</th>\n",
       "      <th>allergytype</th>\n",
       "      <th>allergyname</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>223474</td>\n",
       "      <td>287822</td>\n",
       "      <td>120</td>\n",
       "      <td>133</td>\n",
       "      <td>Admission</td>\n",
       "      <td>THC Nurse</td>\n",
       "      <td>True</td>\n",
       "      <td></td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Nickel</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>223475</td>\n",
       "      <td>287822</td>\n",
       "      <td>120</td>\n",
       "      <td>133</td>\n",
       "      <td>Admission</td>\n",
       "      <td>THC Nurse</td>\n",
       "      <td>True</td>\n",
       "      <td></td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Tetracycline</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>223476</td>\n",
       "      <td>287822</td>\n",
       "      <td>120</td>\n",
       "      <td>133</td>\n",
       "      <td>Admission</td>\n",
       "      <td>THC Nurse</td>\n",
       "      <td>True</td>\n",
       "      <td></td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Ampicillin</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>223477</td>\n",
       "      <td>287822</td>\n",
       "      <td>120</td>\n",
       "      <td>133</td>\n",
       "      <td>Admission</td>\n",
       "      <td>THC Nurse</td>\n",
       "      <td>True</td>\n",
       "      <td></td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Clindamycin</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>256993</td>\n",
       "      <td>287822</td>\n",
       "      <td>2763</td>\n",
       "      <td>2763</td>\n",
       "      <td>Comprehensive Progress</td>\n",
       "      <td>THC Nurse</td>\n",
       "      <td>True</td>\n",
       "      <td></td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Nickel</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   allergyid  patientunitstayid  allergyoffset  allergyenteredoffset  \\\n",
       "0     223474             287822            120                   133   \n",
       "1     223475             287822            120                   133   \n",
       "2     223476             287822            120                   133   \n",
       "3     223477             287822            120                   133   \n",
       "4     256993             287822           2763                  2763   \n",
       "\n",
       "          allergynotetype   usertype writtenineicu drugname allergytype  \\\n",
       "0               Admission  THC Nurse          True             Non Drug   \n",
       "1               Admission  THC Nurse          True             Non Drug   \n",
       "2               Admission  THC Nurse          True             Non Drug   \n",
       "3               Admission  THC Nurse          True             Non Drug   \n",
       "4  Comprehensive Progress  THC Nurse          True             Non Drug   \n",
       "\n",
       "    allergyname  \n",
       "0        Nickel  \n",
       "1  Tetracycline  \n",
       "2    Ampicillin  \n",
       "3   Clindamycin  \n",
       "4        Nickel  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Look at a subset of columns\n",
    "cols = ['allergyid','patientunitstayid','allergyoffset','allergyenteredoffset',\n",
    "        'allergynotetype', 'usertype', 'writtenineicu',\n",
    "       'drugname','allergytype','allergyname']\n",
    "df[cols].head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here we can see that this patient had an admission note highlighting they were allergic to nickel, tetracycline, ampicillin, and clindamycin."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Identifying patients allergic to tetracycline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's look for patients who were allergic to tetracycline."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "29 unit stays with allergy to Tetracycline.\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>patientunitstayid</th>\n",
       "      <th>allergyoffset</th>\n",
       "      <th>allergyenteredoffset</th>\n",
       "      <th>allergytype</th>\n",
       "      <th>allergyname</th>\n",
       "      <th>drugname</th>\n",
       "      <th>drughiclseqno</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>allergyid</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>223475</th>\n",
       "      <td>287822</td>\n",
       "      <td>120</td>\n",
       "      <td>133</td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Tetracycline</td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>229693</th>\n",
       "      <td>305743</td>\n",
       "      <td>1643</td>\n",
       "      <td>1645</td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Tetracycline</td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>229719</th>\n",
       "      <td>300246</td>\n",
       "      <td>86</td>\n",
       "      <td>113</td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Tetracycline</td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>239070</th>\n",
       "      <td>261530</td>\n",
       "      <td>11</td>\n",
       "      <td>161</td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Tetracycline</td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>249443</th>\n",
       "      <td>300246</td>\n",
       "      <td>22</td>\n",
       "      <td>23</td>\n",
       "      <td>Non Drug</td>\n",
       "      <td>Tetracycline</td>\n",
       "      <td></td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           patientunitstayid  allergyoffset  allergyenteredoffset allergytype  \\\n",
       "allergyid                                                                       \n",
       "223475                287822            120                   133    Non Drug   \n",
       "229693                305743           1643                  1645    Non Drug   \n",
       "229719                300246             86                   113    Non Drug   \n",
       "239070                261530             11                   161    Non Drug   \n",
       "249443                300246             22                    23    Non Drug   \n",
       "\n",
       "            allergyname drugname drughiclseqno  \n",
       "allergyid                                       \n",
       "223475     Tetracycline                   None  \n",
       "229693     Tetracycline                   None  \n",
       "229719     Tetracycline                   None  \n",
       "239070     Tetracycline                   None  \n",
       "249443     Tetracycline                   None  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "drug = 'Tetracycline'\n",
    "query = query_schema + \"\"\"\n",
    "select \n",
    "  allergyid, patientunitstayid\n",
    "  , allergyoffset, allergyenteredoffset\n",
    "  , allergytype, allergyname\n",
    "  , drugname, drughiclseqno\n",
    "from allergy\n",
    "where allergyname = '{}'\n",
    "\"\"\".format(drug)\n",
    "\n",
    "df = pd.read_sql_query(query, con)\n",
    "df.set_index('allergyid',inplace=True)\n",
    "print('{} unit stays with allergy to {}.'.format(df['patientunitstayid'].nunique(), drug))\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "However, it's also possible that they used mixed case, pluralization, or specified more than that specific string. We can use a string comparison to look for allergies like tetracycline."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "752 unit stays with allergy to Tetracycline.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "TETRACYCLINE            829\n",
       "TETRACYCLINE HCL        369\n",
       "tetracycline             85\n",
       "Tetracycline             56\n",
       "OXYTETRACYCLINE          29\n",
       "tetracyclines            25\n",
       "Tetracyclines            16\n",
       "TETRACYCLINES            15\n",
       "oxytetracycline           4\n",
       "tetracycline, ultram      3\n",
       "Tetracycline Base         2\n",
       "tetracycline base         2\n",
       "Oxytetracycline           2\n",
       "PCN, tetracyclines        1\n",
       "Tetracycline base         1\n",
       "tetracycline antidep      1\n",
       "Tetracycline Hcl          1\n",
       "tetracyclines,            1\n",
       "tetracyclines and re      1\n",
       "Name: allergyname, dtype: int64"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "drug = 'Tetracycline'\n",
    "query = query_schema + \"\"\"\n",
    "select \n",
    "  allergyid, patientunitstayid\n",
    "  , allergyoffset, allergyenteredoffset\n",
    "  , allergytype, allergyname\n",
    "  , drugname, drughiclseqno\n",
    "from allergy\n",
    "where lower(allergyname) like '%{}%'\n",
    "\"\"\".format(drug.lower())\n",
    "\n",
    "df = pd.read_sql_query(query, con)\n",
    "df.set_index('allergyid',inplace=True)\n",
    "print('{} unit stays with allergy to {}.'.format(df['patientunitstayid'].nunique(), drug))\n",
    "df['allergyname'].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It's also possible that they specified the allergy under the `drugname` column."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "598 unit stays with allergy to Tetracycline specified in drugname.\n",
      "TETRACYCLINE        780\n",
      "TETRACYCLINE HCL    369\n",
      "OXYTETRACYCLINE      28\n",
      "Name: drugname, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>patientunitstayid</th>\n",
       "      <th>allergyoffset</th>\n",
       "      <th>allergyenteredoffset</th>\n",
       "      <th>allergytype</th>\n",
       "      <th>allergyname</th>\n",
       "      <th>drugname</th>\n",
       "      <th>drughiclseqno</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>allergyid</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>242969</th>\n",
       "      <td>295698</td>\n",
       "      <td>-774</td>\n",
       "      <td>-773</td>\n",
       "      <td>Drug</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>5236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>243647</th>\n",
       "      <td>261622</td>\n",
       "      <td>28</td>\n",
       "      <td>101</td>\n",
       "      <td>Drug</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>5236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>268594</th>\n",
       "      <td>292832</td>\n",
       "      <td>29</td>\n",
       "      <td>62</td>\n",
       "      <td>Drug</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>5236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>274631</th>\n",
       "      <td>262382</td>\n",
       "      <td>173</td>\n",
       "      <td>189</td>\n",
       "      <td>Drug</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>5236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>282195</th>\n",
       "      <td>284979</td>\n",
       "      <td>77</td>\n",
       "      <td>87</td>\n",
       "      <td>Drug</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>5236</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           patientunitstayid  allergyoffset  allergyenteredoffset allergytype  \\\n",
       "allergyid                                                                       \n",
       "242969                295698           -774                  -773        Drug   \n",
       "243647                261622             28                   101        Drug   \n",
       "268594                292832             29                    62        Drug   \n",
       "274631                262382            173                   189        Drug   \n",
       "282195                284979             77                    87        Drug   \n",
       "\n",
       "            allergyname      drugname  drughiclseqno  \n",
       "allergyid                                             \n",
       "242969     TETRACYCLINE  TETRACYCLINE           5236  \n",
       "243647     TETRACYCLINE  TETRACYCLINE           5236  \n",
       "268594     TETRACYCLINE  TETRACYCLINE           5236  \n",
       "274631     TETRACYCLINE  TETRACYCLINE           5236  \n",
       "282195     TETRACYCLINE  TETRACYCLINE           5236  "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "drug = 'Tetracycline'\n",
    "query = query_schema + \"\"\"\n",
    "select \n",
    "  allergyid, patientunitstayid\n",
    "  , allergyoffset, allergyenteredoffset\n",
    "  , allergytype, allergyname\n",
    "  , drugname, drughiclseqno\n",
    "from allergy\n",
    "where lower(drugname) like '%{}%'\n",
    "\"\"\".format(drug.lower())\n",
    "\n",
    "df = pd.read_sql_query(query, con)\n",
    "df.set_index('allergyid',inplace=True)\n",
    "print('{} unit stays with allergy to {} specified in drugname.'.format(df['patientunitstayid'].nunique(), drug))\n",
    "print(df['drugname'].value_counts())\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Since we may not capture all spellings or brands for tetracycline, we can try to use the HICL code to identify other observations. Above, we can see the HICL for tetracycline is 5236."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "344 unit stays with allergy to HICL 5236 specified in drugname.\n",
      "TETRACYCLINE    780\n",
      "Name: drugname, dtype: int64\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>patientunitstayid</th>\n",
       "      <th>allergyoffset</th>\n",
       "      <th>allergyenteredoffset</th>\n",
       "      <th>allergytype</th>\n",
       "      <th>allergyname</th>\n",
       "      <th>drugname</th>\n",
       "      <th>drughiclseqno</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>allergyid</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>242969</th>\n",
       "      <td>295698</td>\n",
       "      <td>-774</td>\n",
       "      <td>-773</td>\n",
       "      <td>Drug</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>5236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>243647</th>\n",
       "      <td>261622</td>\n",
       "      <td>28</td>\n",
       "      <td>101</td>\n",
       "      <td>Drug</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>5236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>268594</th>\n",
       "      <td>292832</td>\n",
       "      <td>29</td>\n",
       "      <td>62</td>\n",
       "      <td>Drug</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>5236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>274631</th>\n",
       "      <td>262382</td>\n",
       "      <td>173</td>\n",
       "      <td>189</td>\n",
       "      <td>Drug</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>5236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>282195</th>\n",
       "      <td>284979</td>\n",
       "      <td>77</td>\n",
       "      <td>87</td>\n",
       "      <td>Drug</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>TETRACYCLINE</td>\n",
       "      <td>5236</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           patientunitstayid  allergyoffset  allergyenteredoffset allergytype  \\\n",
       "allergyid                                                                       \n",
       "242969                295698           -774                  -773        Drug   \n",
       "243647                261622             28                   101        Drug   \n",
       "268594                292832             29                    62        Drug   \n",
       "274631                262382            173                   189        Drug   \n",
       "282195                284979             77                    87        Drug   \n",
       "\n",
       "            allergyname      drugname  drughiclseqno  \n",
       "allergyid                                             \n",
       "242969     TETRACYCLINE  TETRACYCLINE           5236  \n",
       "243647     TETRACYCLINE  TETRACYCLINE           5236  \n",
       "268594     TETRACYCLINE  TETRACYCLINE           5236  \n",
       "274631     TETRACYCLINE  TETRACYCLINE           5236  \n",
       "282195     TETRACYCLINE  TETRACYCLINE           5236  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hicl = 5236\n",
    "query = query_schema + \"\"\"\n",
    "select \n",
    "  allergyid, patientunitstayid\n",
    "  , allergyoffset, allergyenteredoffset\n",
    "  , allergytype, allergyname\n",
    "  , drugname, drughiclseqno\n",
    "from allergy\n",
    "where drughiclseqno = {}\n",
    "\"\"\".format(hicl)\n",
    "\n",
    "df = pd.read_sql_query(query, con)\n",
    "df.set_index('allergyid',inplace=True)\n",
    "print('{} unit stays with allergy to HICL {} specified in drugname.'.format(df['patientunitstayid'].nunique(), hicl))\n",
    "print(df['drugname'].value_counts())\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's combine all these methods and summarize how many patients are identified using each method."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>patientunitstayid</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hicl_match</th>\n",
       "      <th>drug_match</th>\n",
       "      <th>allergy_match</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">0</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <td>154</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <th>1</th>\n",
       "      <td>254</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <th>1</th>\n",
       "      <th>1</th>\n",
       "      <td>344</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     patientunitstayid\n",
       "hicl_match drug_match allergy_match                   \n",
       "0          0          1                            154\n",
       "           1          1                            254\n",
       "1          1          1                            344"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hicl = 5236\n",
    "drugname = 'Tetracycline'\n",
    "allergyname = 'Tetracycline'\n",
    "query = query_schema + \"\"\"\n",
    "select \n",
    "  patientunitstayid\n",
    "  , max(case when drughiclseqno = {} then 1 else 0 end) as hicl_match\n",
    "  , max(case when lower(drugname) like '%{}%' then 1 else 0 end) as drug_match\n",
    "  , max(case when lower(allergyname) like '%{}%' then 1 else 0 end) as allergy_match\n",
    "from allergy\n",
    "group by patientunitstayid\n",
    "\"\"\".format(hicl, drugname.lower(), allergyname.lower())\n",
    "\n",
    "df = pd.read_sql_query(query, con)\n",
    "# drop non-matching rows\n",
    "idx = (df['hicl_match'] == 1) | (df['drug_match'] == 1) | (df['allergy_match'] == 1)\n",
    "df = df.loc[idx, :]\n",
    "\n",
    "df.groupby(['hicl_match', 'drug_match', 'allergy_match']).count()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As we can see, using the `allergyname` column was the most effective, and always identified patients allergic to tetracycline. Unfortunately we know this is an incomplete search, as likely providers will document brand names rather than generic names from time to time. For example, tetracyclin is marketed under the name Sumycin among others. We can search for Sumycin in the data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 unit stays with allergy to Sumycin.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "SUMYCIN    1\n",
       "Name: allergyname, dtype: int64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "drug = 'Sumycin'\n",
    "query = query_schema + \"\"\"\n",
    "select \n",
    "  allergyid, patientunitstayid\n",
    "  , allergyoffset, allergyenteredoffset\n",
    "  , allergytype, allergyname\n",
    "  , drugname, drughiclseqno\n",
    "from allergy\n",
    "where lower(allergyname) like '%{}%'\n",
    "\"\"\".format(drug.lower())\n",
    "\n",
    "df = pd.read_sql_query(query, con)\n",
    "df.set_index('allergyid',inplace=True)\n",
    "print('{} unit stays with allergy to {}.'.format(df['patientunitstayid'].nunique(), drug))\n",
    "df['allergyname'].value_counts()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Happily, in this case, only 1 patient is excluded by not searching for Sumycin, but in general it may be more."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Hospitals with data available"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>hospitalid</th>\n",
       "      <th>number_of_patients</th>\n",
       "      <th>number_of_patients_with_tbl</th>\n",
       "      <th>data completion</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>134</th>\n",
       "      <td>338</td>\n",
       "      <td>4277</td>\n",
       "      <td>2453</td>\n",
       "      <td>57.353285</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90</th>\n",
       "      <td>243</td>\n",
       "      <td>4243</td>\n",
       "      <td>2241</td>\n",
       "      <td>52.816403</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>184</th>\n",
       "      <td>420</td>\n",
       "      <td>4679</td>\n",
       "      <td>2127</td>\n",
       "      <td>45.458431</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>122</th>\n",
       "      <td>300</td>\n",
       "      <td>3617</td>\n",
       "      <td>1936</td>\n",
       "      <td>53.525021</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>54</th>\n",
       "      <td>167</td>\n",
       "      <td>6092</td>\n",
       "      <td>1854</td>\n",
       "      <td>30.433355</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>80</th>\n",
       "      <td>208</td>\n",
       "      <td>3650</td>\n",
       "      <td>1700</td>\n",
       "      <td>46.575342</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>177</th>\n",
       "      <td>411</td>\n",
       "      <td>3199</td>\n",
       "      <td>1623</td>\n",
       "      <td>50.734605</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>206</th>\n",
       "      <td>458</td>\n",
       "      <td>3701</td>\n",
       "      <td>1611</td>\n",
       "      <td>43.528776</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>176</td>\n",
       "      <td>4328</td>\n",
       "      <td>1508</td>\n",
       "      <td>34.842884</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>200</th>\n",
       "      <td>443</td>\n",
       "      <td>3656</td>\n",
       "      <td>1240</td>\n",
       "      <td>33.916849</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     hospitalid  number_of_patients  number_of_patients_with_tbl  \\\n",
       "134         338                4277                         2453   \n",
       "90          243                4243                         2241   \n",
       "184         420                4679                         2127   \n",
       "122         300                3617                         1936   \n",
       "54          167                6092                         1854   \n",
       "80          208                3650                         1700   \n",
       "177         411                3199                         1623   \n",
       "206         458                3701                         1611   \n",
       "58          176                4328                         1508   \n",
       "200         443                3656                         1240   \n",
       "\n",
       "     data completion  \n",
       "134        57.353285  \n",
       "90         52.816403  \n",
       "184        45.458431  \n",
       "122        53.525021  \n",
       "54         30.433355  \n",
       "80         46.575342  \n",
       "177        50.734605  \n",
       "206        43.528776  \n",
       "58         34.842884  \n",
       "200        33.916849  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "query = query_schema + \"\"\"\n",
    "select \n",
    "  pt.hospitalid\n",
    "  , count(distinct pt.patientunitstayid) as number_of_patients\n",
    "  , count(distinct a.patientunitstayid) as number_of_patients_with_tbl\n",
    "from patient pt\n",
    "left join allergy a\n",
    "  on pt.patientunitstayid = a.patientunitstayid\n",
    "group by pt.hospitalid\n",
    "\"\"\".format(patientunitstayid)\n",
    "\n",
    "df = pd.read_sql_query(query, con)\n",
    "df['data completion'] = df['number_of_patients_with_tbl'] / df['number_of_patients'] * 100.0\n",
    "df.sort_values('number_of_patients_with_tbl', ascending=False, inplace=True)\n",
    "df.head(n=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div class=\"vega-embed\" id=\"818b3243-8faf-44f0-b537-b3d584cfea92\"></div>\n",
       "\n",
       "<style>\n",
       ".vega-embed svg, .vega-embed canvas {\n",
       "  border: 1px dotted gray;\n",
       "}\n",
       "\n",
       ".vega-embed .vega-actions a {\n",
       "  margin-right: 6px;\n",
       "}\n",
       "</style>\n"
      ]
     },
     "metadata": {
      "jupyter-vega3": "#818b3243-8faf-44f0-b537-b3d584cfea92"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "var spec = {\"width\": 450, \"selection\": {\"grid\": {\"type\": \"interval\", \"bind\": \"scales\"}}, \"data\": {\"values\": [{\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 57.35328501285948}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 52.81640348809804}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 45.45843128873691}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 53.52502073541609}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 30.433355219960607}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 46.57534246575342}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 50.734604563926226}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 43.52877600648473}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 34.842883548983366}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 33.91684901531728}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 50.68436333471589}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 58.38926174496645}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 39.465463380770565}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 53.60189573459716}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 43.579612801264325}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 54.45223961144091}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 54.66439135381115}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 30.985915492957744}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 42.997658079625296}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 30.459565372283574}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 40.08662175168431}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 27.949676980618836}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 51.31578947368421}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 44.98346196251378}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 58.546017014694506}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 22.36725007416197}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 47.98962386511025}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 37.295918367346935}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 34.75143403441683}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 34.620886981402}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 52.70373191165271}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 36.480000000000004}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 37.48597081930416}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 60.1985559566787}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 47.98206278026906}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 40.05102040816326}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 32.79908414424728}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 46.04200323101777}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 56.61914460285132}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 43.20502749410841}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 46.84838160136286}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 33.87096774193548}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 51.65876777251185}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 42.99516908212561}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 47.8937728937729}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 35.192837465564736}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 56.52173913043478}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 54.03314917127072}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 49.10242872228089}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 21.64605137963844}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 22.288261515601786}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 21.94114610221993}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 42.739443872296604}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 49.75903614457831}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 54.22818791946309}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 43.53448275862069}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 56.25899280575539}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 25.5783212161269}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 52.75482093663911}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 62.311557788944725}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 22.050059594755663}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 61.60409556313993}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 55.84}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 62.095238095238095}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 43.741588156123825}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 44.38202247191011}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 51.520270270270274}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 47.104851330203445}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 53.64963503649635}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 35.80998781973204}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 33.098591549295776}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 27.174975562072333}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 42.078364565587734}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 38.019169329073485}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 40.520446096654275}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 28.354080221300137}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 56.21468926553672}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 49.340369393139845}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 56.70731707317073}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 50.83333333333333}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 55.319148936170215}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 36.43724696356275}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 31.293706293706293}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 35.62753036437247}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 44.44444444444444}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 63.13725490196078}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 39.577836411609496}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 48.37662337662338}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 25.479930191972077}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 46.73202614379085}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 50.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 38.069705093833775}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 55.46875}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 24.173913043478258}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 12.246696035242291}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 42.07119741100323}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 3.443487920022216}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 12.19758064516129}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 17.647058823529413}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 26.62192393736018}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 28.921568627450984}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 2.7358490566037736}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 28.14814814814815}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 11.38211382113821}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 16.208393632416787}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 23.060344827586206}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 14.965034965034965}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 8.922558922558922}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 42.54385964912281}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 23.4718826405868}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 54.97076023391813}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 29.02208201892745}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 25.139664804469277}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 52.5}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 31.57894736842105}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 42.3728813559322}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 1.3939278212717205}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 33.17972350230415}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 47.019867549668874}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 48.854961832061065}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 51.61290322580645}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 18.238993710691823}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 46.72131147540984}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 25.454545454545453}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 66.66666666666666}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 31.25}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 23.555555555555554}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 38.23529411764706}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 9.67741935483871}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 22.52252252252252}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 9.181636726546905}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 17.647058823529413}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 59.09090909090909}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 69.64285714285714}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 18.095238095238095}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 8.096280087527353}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 3.234265734265734}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 30.630630630630627}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 25.190839694656486}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 40.74074074074074}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 59.25925925925925}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 21.52777777777778}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 7.542579075425791}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 50.81967213114754}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 8.174386920980927}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 7.263922518159806}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 8.426966292134832}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 23.62204724409449}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 54.71698113207547}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 38.57142857142858}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 2.343017806935333}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 61.53846153846154}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 8.949416342412452}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 37.096774193548384}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 43.18181818181818}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 58.06451612903226}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 2.5466893039049237}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 1.710526315789474}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 19.35483870967742}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 17.142857142857142}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 52.38095238095239}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 73.33333333333333}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 66.66666666666666}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 2.980132450331126}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 40.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 53.84615384615385}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 46.666666666666664}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 63.63636363636363}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 1.1945392491467577}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 1.7191977077363898}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 1.574803149606299}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 42.857142857142854}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 2.1459227467811157}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 2.0408163265306123}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 2.072538860103627}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.6791171477079796}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 13.043478260869565}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.1985440105890139}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 33.33333333333333}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 15.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.15810276679841898}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.303951367781155}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 33.33333333333333}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.1763668430335097}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.205761316872428}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 3.7037037037037033}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}, {\"Number of hospitals\": \"data completion\", \"Percent of patients with data\": 0.0}]}, \"$schema\": \"https://vega.github.io/schema/vega-lite/v2.json\", \"mark\": \"bar\", \"height\": 300, \"encoding\": {\"y\": {\"aggregate\": \"count\", \"type\": \"quantitative\", \"stack\": null}, \"x\": {\"field\": \"Percent of patients with data\", \"type\": \"quantitative\", \"bin\": {\"maxbins\": 10}}, \"color\": {\"field\": \"Number of hospitals\", \"type\": \"nominal\"}}};\n",
       "var selector = \"#818b3243-8faf-44f0-b537-b3d584cfea92\";\n",
       "var type = \"vega-lite\";\n",
       "\n",
       "var output_area = this;\n",
       "require(['nbextensions/jupyter-vega3/index'], function(vega) {\n",
       "  vega.render(selector, spec, type, output_area);\n",
       "}, function (err) {\n",
       "  if (err.requireType !== 'scripterror') {\n",
       "    throw(err);\n",
       "  }\n",
       "});\n"
      ]
     },
     "metadata": {
      "jupyter-vega3": "#818b3243-8faf-44f0-b537-b3d584cfea92"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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"
     },
     "metadata": {
      "jupyter-vega3": "#818b3243-8faf-44f0-b537-b3d584cfea92"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[['data completion']].vgplot.hist(bins=10,\n",
    "                                    var_name='Number of hospitals',\n",
    "                                    value_name='Percent of patients with data')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As is common in eICU-CRD, there are a subset of hospitals who routinely utilize this portion of the medical record (and thus have high data completion), while there are other hospitals who rarely use this interface and thus have poor data completion (0-10%). Data completion is conflated with the fact that not all patients will have an allergy, and thus it is expected that documentation not be >90%."
   ]
  }
 ],
 "metadata": {
  "front-matter": {
   "date": "2015-09-01",
   "linktitle": "admissiondrug",
   "title": "admissiondrug"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
